package day15;

/**
 * 圆柱体类，继承自Circle类
 * 包含高度属性，可以计算表面积和体积
 */
public class Cylinder extends Circle {
    // 高度属性
    private double height;
    
    // 构造方法
    public Cylinder() {
    }
    
    public Cylinder(double radius, double height) {
        super(radius);
        this.height = height;
    }
    
    // height的getter和setter方法
    public double getHeight() {
        return height;
    }
    
    public void setHeight(double height) {
        this.height = height;
    }
    
    /**
     * 计算圆柱体的表面积
     * 表面积 = 2 * 底面积 + 侧面积 = 2 * π * r^2 + 2 * π * r * h
     * @return 表面积
     */
    @Override
    public double calculateArea() {
        // 2 * π * r^2 + 2 * π * r * h
        return 2 * super.calculateArea() + 2 * Math.PI * radius * height;
    }
    
    /**
     * 计算圆柱体的体积
     * 体积 = 底面积 * 高 = π * r^2 * h
     * @return 体积
     */
    public double calculateVolume() {
        return super.calculateArea() * height;
    }
    
    /**
     * 重写toString方法，输出对象信息
     * @return 对象信息字符串
     */
    @Override
    public String toString() {
        return "圆柱半径=" + radius + ", 高度=" + height + "";
    }
}